package io.renren.modules.sys.service.impl;

import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import io.renren.common.utils.PageUtils;
import io.renren.common.utils.Query;

import io.renren.modules.sys.dao.AttendanceDao;
import io.renren.modules.sys.entity.AttendanceEntity;
import io.renren.modules.sys.service.AttendanceService;


@Service("attendanceService")
public class AttendanceServiceImpl extends ServiceImpl<AttendanceDao, AttendanceEntity> implements AttendanceService {

    @Override
    public PageUtils queryPage(Map<String, Object> params) {
        DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");        
        Date stratDate=null;
        if(null!=params.get("stratDate")&&!StringUtils.isEmpty(params.get("stratDate").toString())) {
        	try {
        		stratDate=format.parse(params.get("stratDate").toString());
			} catch (ParseException e) {
				e.printStackTrace();
			} 
        }
    	Date endDate=null;
        if(null!=params.get("endDate")&&!StringUtils.isEmpty(params.get("endDate").toString())) {
        	try {
        		endDate=format.parse(params.get("endDate").toString());
			} catch (ParseException e) {
				e.printStackTrace();
			} 
        }
    	Integer status=null;
		if(null!=params.get("status")&&!StringUtils.isEmpty(params.get("status").toString())) {
			status = Integer.valueOf(params.get("status").toString());
		}
    	Integer userId=null;
    	if(null!=params.get("userId")&&!StringUtils.isEmpty(params.get("userId").toString())) {
    		userId=Integer.valueOf(params.get("userId").toString());
    	}
        Page<AttendanceEntity> page = this.selectPage(
                new Query<AttendanceEntity>(params).getPage(),
                new EntityWrapper<AttendanceEntity>()
                .ge(null!=stratDate, "add_time", stratDate)
                .le(null!=endDate, "add_time", endDate)
                .addFilterIfNeed(null!=status, "status={0}", status)
                .addFilterIfNeed(null!=userId,"user_id={0}", userId)
                
        );

        return new PageUtils(page);
    }

}
